<!--
 【标签的 ref 属性】
  作用: 用于注册模板引用.
  - 用在普通 DOM 标签上, 获取的是 DOM 节点.
  - 用在组件标签上, 获取的是组件实例对象. 
  如果要获取实例对象的内容, 需要在组件中使用 defineExpose 导出
-->
<template>
  <div class="person">
    <h1>中国</h1>
    <h2 ref="title2">北京</h2>
    <h3>尚硅谷</h3>
    <button @click="showLog">点我输出h2这个元素</button>
  </div>
</template>

<script lang="ts" setup name="Person">
  import {ref, defineExpose } from 'vue'

  // 创建一个 title2, 用于存储 ref 标记的内容
  let title2 = ref()
  let a = ref(0)
  let b = ref(1)
  let c = ref(2)

  function showLog() {
    // data-v-xxxx 局部样式 scope 添加
    console.log(title2.value)
  }

  defineExpose({a, b, showLog})
</script>

<style scoped> 
.person {
  background-color: skyblue;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  padding: 20px;
}

button {
  margin: 0 5px;
}

li {
  font-size: 20px;
}
</style>